Regresión lineal múltiple y regresión logística
2026-01-14
Regresión (continuo): \[ J(\mathbf{w}) \;=\; \frac{1}{2m}\sum_{i=1}^{m}\left(y_j - \hat{y}_j\right)^2 \] donde \(\hat{y}_j = \mathbf{w}^\top \mathbf{x}_j\).
Clasificación binaria: Entropía cruzada (log-loss): \[ J(\mathbf{w}) \;=\; -\frac{1}{m}\sum_{i=1}^{m}\left[\,y_i\log\hat{p}_i + (1-y_i)\log(1-\hat{p}_i)\,\right] \] donde \(\hat{p}_i=\sigma(\mathbf{w}^\top \mathbf{x}_i)=\frac{1}{1+e^{-\mathbf{w}^\top\mathbf{x}_i}}\).
… Para el caso de ejemplo (un modelo tipo lineal)
\[ \mathbf{w_{j}}^\top \;=\; \left[w_{j,1}, w_{j,0}\right] \]
\[ salary_i = x_i \]
\[ \hat{y}_j \;=\; w_{j,1}*x_j + w_{j,0} \]
\[ J(\mathbf{w}) \;=\; \frac{1}{2m}\sum_{i=1}^{m}\left(y_j - w_{j,1}*x_i - w_{j,0}\right)^2 \]
Visualización conceptual: “valle” del error y trayectoria en zig-zag hacia el mínimo.
Para la estimación de \(w_{j,0}\)
\[ w_{j+1,0} = w_{j,0} - \alpha \frac{\partial J}{\partial w_{j,0}} \]
\[ \frac{\partial J}{\partial w_{j,0}} = \frac{\partial}{\partial w_{j,0}} \left( \frac{1}{2m} \sum_{i=1}^{m} \left( y_i - w_{j,1} x_i - w_{j,0} \right)^2 \right) \]
\[ \frac{\partial}{\partial w_{j,0}} \left( \frac{1}{2m} \sum_{i=1}^{m} \left( y_i - w_{j,1}x_i - w_{j,0} \right)^2 \right) = \frac{1}{m} \sum_{i=1}^{m} \left( w_{j,1}x_i + w_{j,0} - y_i \right) \]
Para la estimación de \(w_{j,1}\)
\[ w_{j+1,1} = w_{j,1} - \alpha \frac{\partial J}{\partial w_{j,1}} \]
\[ \frac{\partial J}{\partial w_{j,1}} = \frac{\partial}{\partial w_{j,1}} \left( \frac{1}{2m} \sum_{i=1}^{m} \left( y_i - w_{j,1} x_i - w_{j,0} \right)^2 \right) \]
\[ \frac{\partial J}{\partial w_{j,1}} = \frac{1}{m} \sum_{i=1}^{m} \left( w_{j,1}x_i + w_{j,0} - y_i \right)x_i \]
Práctica recomendada: mini-batch (p. ej., 32–256).
Objetivo biomédico (ejemplo): predecir gasto energético (kcal) a partir de edad, IMC y FC.
Modelo lineal: \[ \hat{y} = \mathbf{w}^\top \mathbf{x} = w_0 + w_1 x_1 + \cdots + w_p x_p \]
Costo (MSE): \[ J(\mathbf{w}) = \frac{1}{2m}\sum_{i=1}^{m}(y_i - \hat{y}_i)^2 \]
Gradiente: \[ \frac{\partial J}{\partial w_j} = -\frac{1}{m}\sum_{i=1}^{m}(y_i - \hat{y}_i)\,x_{ij} \]
Actualización: \[ w_j \leftarrow w_j - \alpha\,\frac{\partial J}{\partial w_j} \]
in: X (m×p), y (m), α, batch_size, epochs
preprocess: X ← standardize(X)
initialize w ← zeros(p+1) # incluye sesgo w0 si se usa X̃ con columna 1
for epoch in 1..epochs:
for B in iterate_minibatches(X, y, batch_size, shuffle=True):
Xb, yb ← B
yhat ← Xb · w
grad ← (1/|B|) · (Xbᵀ · (yhat - yb))
w ← w - α · grad
return wObjetivo biomédico (ejemplo): clasificar riesgo de enfermedad (0/1) con panel de biomarcadores.
Modelo: \[ \hat{p} = \sigma(\mathbf{w}^\top\mathbf{x}),\quad \sigma(z)=\frac{1}{1+e^{-z}} \]
Costo (entropía cruzada): \[ J(\mathbf{w}) = -\frac{1}{m}\sum_{i=1}^{m}\Big[y_i\log \hat{p}_i + (1-y_i)\log(1-\hat{p}_i)\Big] \]
Gradiente: \[ \frac{\partial J}{\partial w_j} = \frac{1}{m}\sum_{i=1}^{m}(\hat{p}_i - y_i)\,x_{ij} \]
Actualización: \[ w_j \leftarrow w_j - \alpha\,\frac{\partial J}{\partial w_j} \]
Inferencia: clasificar con umbral \(\hat{p} \ge \tau\) (clínico/operativo).
Dataset: fetal_health.csv (UCI CTG). Contexto clínico: interpretación de CTG (normal, sospechoso, patológico).
Defición
Prueba médica que monitoriza simultáneamente la frecuencia cardíaca del feto y la actividad contráctil del útero. Se realiza generalmente durante el tercer trimestre del embarazo y el parto, colocando dos transductores externos (uno para la frecuencia cardíaca fetal y otro para las contracciones) sobre el abdomen de la madre
Generada con Gemini
| Característica (Variable en CSV) | Cálculo o Descripción |
|---|---|
| Parámetros Basales | |
| baseline value | Es la frecuencia cardíaca fetal (FCF) media aproximada en un segmento de 10 minutos, excluyendo aceleraciones, deceleraciones y períodos de variabilidad marcada (>25 lpm). Se redondea a incrementos de 5 latidos por minuto (lpm).[4, 5, 6, 7, 8] El rango normal se considera entre 110 y 160 lpm.[9, 10] |
| fetal_movement | Número de movimientos fetales detectados por segundo.[1, 11, 12] |
| uterine_contractions | Número de contracciones uterinas por segundo. Se considera normal tener 5 o menos contracciones en 10 minutos.[1, 4, 11, 12] |
| Eventos Transitorios (Aceleraciones y Deceleraciones) | |
| accelerations | Número de aceleraciones por segundo. Una aceleración es un aumento abrupto de la FCF por encima de la línea de base de al menos 15 lpm, que dura 15 segundos o más, pero menos de 2 minutos.[5, 9, 10] |
| light_decelerations | Número de deceleraciones leves por segundo. Una deceleración es una caída de la FCF de más de 15 lpm que dura más de 15 segundos.[5] La categoría “leve” se refiere a su duración, típicamente menor a 120 segundos.[3] |
| severe_decelerations | Número de deceleraciones severas por segundo. Se refiere a deceleraciones de larga duración, a menudo definidas como aquellas que superan los 300 segundos.[3] |
| prolongued_decelerations | Número de deceleraciones prolongadas por segundo. Son caídas de la FCF que duran más de 2 o 3 minutos pero menos de 10 minutos.[3, 6, 13] |
| Variabilidad de la FCF | |
| abnormal_short_term_variability | Porcentaje de tiempo en que la variabilidad a corto plazo (latido a latido) es anormal. La variabilidad se considera anormal si es mínima (≤5 lpm) o marcada (>25 lpm).[6, 8] |
| mean_value_of_short_term_variability | Valor medio de la variabilidad a corto plazo (STV), que describe las fluctuaciones de la FCF latido a latido.[3, 6] |
| percentage_of_time_with_abnormal_long_term_variability | Porcentaje de tiempo en que la variabilidad a largo plazo es anormal. Se calcula sobre las fluctuaciones de la FCF en un período de un minuto.[5] |
| mean_value_of_long_term_variability | Valor medio de la variabilidad a largo plazo (LTV), que mide la amplitud (diferencia entre el pico y el valle) de las fluctuaciones de la FCF en un minuto.[3, 5] |
| Características del Histograma de FCF | Estas son propiedades estadísticas calculadas a partir de la distribución de todos los valores de FCF registrados durante el período de monitorización.[1, 11, 12] |
| histogram_width | El ancho del histograma, calculado como la diferencia entre el valor máximo (histogram_max) y el mínimo (histogram_min) de la FCF. |
| histogram_min | El valor mínimo de la FCF registrado en el histograma. |
| histogram_max | El valor máximo de la FCF registrado en el histograma. |
| histogram_number_of_peaks | El número de picos en la distribución del histograma. |
| histogram_number_of_zeroes | El número de “ceros” o bins con frecuencia cero en el histograma. |
| histogram_mode | El valor de FCF que aparece con mayor frecuencia (la moda estadística). |
| histogram_mean | El valor medio de la FCF en el histograma (la media estadística). |
| histogram_median | El valor central de la FCF en el histograma (la mediana estadística). |
| histogram_variance | La varianza de los valores de FCF, que mide su dispersión alrededor de la media. |
| histogram_tendency | Indica la simetría o sesgo del histograma. Puede interpretarse como: 1 para tendencia a la derecha (positiva), -1 para tendencia a la izquierda (negativa) y 0 para una distribución simétrica. |
Aproxima una relación lineal \(\hat{y} = \beta_0 + \sum_j \beta_j x_j\)minimizando MSE.
Usamos una variable continua de CTG como respuesta (p. ej., histogram_width) para ilustrar ajuste y residuales.
Discusión: supuestos (linealidad, homocedasticidad, independencia), diagnóstico con residuales.
Modela \(P(Y=1 \mid \mathbf{x}) = \sigma(\beta_0 + \mathbf{x}^\top \beta)\) con sigmoide \(\sigma(z)=1/(1+e^{-z})\).
La Regresión Logística es un algoritmo de aprendizaje automático supervisado utilizado fundamentalmente para problemas de clasificación binaria.
A pesar de su nombre, su objetivo no es predecir un valor continuo, sino modelar la probabilidad (\(P\)) de que una observación pertenezca a una clase específica (usualmente denotada como \(Y=1\)).
El modelo toma variables de entrada (features) \(x_1, \dots, x_n\) y estima \(P(Y=1 | \mathbf{x})\).
El modelo logístico opera en dos pasos cruciales:
Primero, el modelo calcula una suma ponderada de las entradas, exactamente igual que en una regresión lineal. A este resultado (\(z\)) se le conoce como logit o, más formalmente, log-odds.
\[ z = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \dots + \beta_n x_n \]
Dado que una probabilidad debe estar en el rango \([0, 1]\), \(z\) no puede ser el resultado final. La regresión logística aplica la función sigmoide (\(\sigma\)) a \(z\) para “aplastar” (squash) la salida lineal al rango de probabilidad.
\[ P = \sigma(z) = \frac{1}{1 + e^{-z}} \]
El concepto central que conecta el modelo lineal con la probabilidad es el log-odds. Esta transformación es necesaria para mapear un espacio acotado \([0, 1]\) a un espacio no acotado \([-\infty, +\infty]\).
La transformación se realiza en dos pasos:
El modelo de regresión logística es, por tanto, un modelo lineal que predice el log-odds:
\[ z = \ln\left(\frac{P}{1-P}\right) = \beta_0 + \beta_1 x_1 + \dots + \beta_n x_n \]
Para obtener la probabilidad \(P\) a partir del log-odds \(z\), simplemente revertimos la transformación Logit. Este proceso de despejar \(P\) de la ecuación del logit da origen a la función sigmoide:
Ecuación base: \[ z = \ln\left(\frac{P}{1-P}\right) \]
Aplicar exponencial (inversa del logaritmo): \[ e^z = \frac{P}{1-P} \]
Despejar \(P\): \[ e^z (1-P) = P \] \[ e^z - e^z P = P \] \[ e^z = P + e^z P \] \[ e^z = P (1 + e^z) \]
Probabilidad \(P\) en función de \(z\): \[ P = \frac{e^z}{1 + e^z} \]
Forma sigmoide alternativa (dividiendo numerador y denominador por \(e^z\)): \[ P = \frac{e^z/e^z}{(1 + e^z)/e^z} = \frac{1}{e^{-z} + 1} = \frac{1}{1 + e^{-z}} \]
Debido a esta relación, los coeficientes (\(\beta_i\)) del modelo tienen una interpretación específica:
precision recall f1-score support
0 0.778 0.745 0.761 94
1 0.929 0.940 0.934 332
accuracy 0.897 426
macro avg 0.853 0.842 0.848 426
weighted avg 0.895 0.897 0.896 426